package JZOffer;

/**
 * @author Lw中
 * @date 2021/8/4 22:20
 */
public class Jz11 {

    // Jz11. 旋转数组的最小数字

    public int minArray(int[] numbers) {
        // 排序数组的查找问题使用二分查找
        int i = 0; // 头
        int j = numbers.length - 1; // 尾
        while (i < j) {
            int m = (i + j) / 2; // 中间值
            if (numbers[m] > numbers[j]) i = m + 1; //当中间值大于尾时说明最小值在右侧
            else if (numbers[m] < numbers[j]) j = m; // 当中间值小于尾时说明最小值在左侧
            else j--; // 当中间值等于尾时，j自减缩小数组
        }
        return numbers[i];
    }

}
